//Source file: D:\\aaa\\com\\ce\\pms\\renovation\\service\\IInspectionService.java

package com.ce.pms.renovation.service;

import java.util.List;

import com.ce.pms.renovation.vo.FirstInspectionVO;
import com.ce.pms.renovation.vo.InspectionRequisitionQueryConditionVO;
import com.ce.pms.renovation.vo.InspectionRequisitionVO;
import com.ce.pms.renovation.vo.InspectionViolationVO;
import com.ce.pms.renovation.vo.ReinspectionVO;
import com.sitechasia.webx.core.support.Page;


/**
 * 名称: com.ce.pms.renovation.service.IInspectionService
 * 装修验收服务接口
 *
 * @author  许心炜  <br>
 * Created on： 2008-12-19 <br>
 * @author <br>
 * update on： <br>
 * why: <br>
 */
public interface IInspectionService
{
   /**
    * 查询装修验收申请记录
    * @param queryConditionVO - 组合查询条件
    * @return Page
    * @roseuid 4938A322029F
    */
   public Page queryInspectionRequisitions(InspectionRequisitionQueryConditionVO queryConditionVO);

   /**
    * 新增装修验收申请
    * @param inspectionRequisitionVO - 装修验收申请VO
    * @return InspectionRequisitionVO
    * @roseuid 4938BB160167
    */
   public InspectionRequisitionVO addInspectionRequisition(InspectionRequisitionVO inspectionRequisitionVO);

   /**
    * 删除装修验收申请
    * @param inspectionRequisitionId - 装修验收申请ID
    * @roseuid 4938BD060271
    */
   public Boolean deleteInspectionRequisition(Long inspectionRequisitionId);

   /**
    * 编辑装修验收申请
    * @param inspectionRequisitionVO - 装修验收申请VO
    * @return InspectionRequisitionVO
    * @roseuid 4938BDB401F4
    */
   public InspectionRequisitionVO editInspectionRequisition(InspectionRequisitionVO inspectionRequisitionVO);

   /**
    * 根据ID获得装修验收申请详细信息
    * @param inspectionRequisitionId - 装修验收申请ID
    * @return InspectionRequisitionVO
    * @roseuid 4938BDD202CE
    */
   public InspectionRequisitionVO getInspectionRequisition(Long inspectionRequisitionId);

   /** 功能描述: 根据许可证ID获得装修验收对象 <br>
	 * @param licenceId - 许可证ID
	 * @return
	 * Create author:许心炜 <br>
	 * Create on:2008-12-29  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	*/
	public InspectionRequisitionVO getInspectionRequisitionByLicenceId(Long licenceId);

   /**
    * 竣工初验
    * @param firstInspectionVO - 竣工初验VO
    * @roseuid 4938BEAB033C
    */
   public FirstInspectionVO firstInspection(FirstInspectionVO firstInspectionVO);

   /**
    * 根据装修验收申请的ID获得竣工初验的详细信息
    * @param inspectionRequisitionId - 装修验收申请ID
    * @return FirstInspectionVO
    * @roseuid 4938BFF8029F
    */
   public FirstInspectionVO getFirstInspection(Long inspectionRequisitionId);

   /**
    * 根据抽象装修验收ID获得验收期违规记录
    * @param inspectionId - 抽象装修验收ID
    * @return InspectionViolationVO
    * @roseuid 4938F4EB0157
    */
   public InspectionViolationVO getInspectionViolation(Long inspectionId);

   /**
    * 验收期违规登记
    * @param inspectionViolationVO - 装修期违规记录VO
    * @return InspectionRequisitionVO
    * @roseuid 4938F8E6001F
    */
   public InspectionViolationVO registerInspectionViolation(InspectionViolationVO inspectionViolationVO);

   /**
    * 根据许可证ID获得竣工复验记录列表
    * @param inspectionRequisitionId - 装修验收申请ID
    * @return List
    * @roseuid 4938FABD032C
    */
   public List<ReinspectionVO> getReinspections(Long inspectionRequisitionId);

   /**
    * 新增竣工复验
    * @param reinspection - 竣工复验VO
    * @return ReinspectionVO
    * @roseuid 493C7E8C02CE
    */
   public ReinspectionVO addReinspection(ReinspectionVO reinspection);

   /**
    * 修改竣工复验
    * @param reinspection - 竣工复验VO
    * @return ReinspectionVO
    * @roseuid 493C7F0B0138
    */
   public ReinspectionVO editReinspection(ReinspectionVO reinspection);

   /**
    * 删除竣工复验
    * @param reinspectionId - 竣工复验ID
    * @roseuid 493C7F430203
    */
   public Boolean deleteReinspection(Long reinspectionId);

   /**
    * 根据ID获得竣工复验VO
    * @param reinspectionId - 竣工复验ID
    * @return ReinspectionVO
    * @roseuid 493C7FFB03D8
    */
   public ReinspectionVO getReinspection(Long reinspectionId);

   /** 功能描述: 根据许可证号获得通过的复验记录 <br>
	 * @param licenceId
	 * @return
	 * Create author:许心炜 <br>
	 * Create on:2009-1-16  <br>
	 * Edit author:  <br>
	 * Edit on:    <br>
	 * Why:     <br>
	*/
	public ReinspectionVO getPassReinspectionByLicenceId(Long licenceId);
}
